perm filename COMT.PAL[HAL,HE]5 blob sn#167939 filedate 1975-07-10 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00007 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	  Test of condition monitors
C00004 00003	  SMALL TEST OF ARITHMETIC
C00006 00004	  SMALL TEST OF ARITHMETIC
C00007 00005	  Test of the FOR loop.
C00008 00006	  Test of graph structure:  calculators
C00009 00007	  Test of graph structure:  changers
C00010 ENDMK
C⊗;
;  Test of condition monitors

COMMENT  ⊗
	XPRINT
	L45	;Say hello
	XCMMAK	
	20	;CM at 20
	L30	;Code at L30 for checker
	L31	;Code at L31 for body
	XMVAR	;
	10	;X
	12	;y
	0
	XPUSH	;X ← L41
	L41
	XCHNGE	
	10
	XPUSH	;Y ← L41.5 (= 0)
	L41.5
	XCHNGE	
	12
	XCMENB	;Enable checker
	20
L32:	XGTVAL	;X ← X - 1
	10	;
	XCOPY	;
	0
	XPRNTS	;Say what X is
	XPUSH	;
	L43	;Push 1
	XSSUB	;Subtract
	XCHNGE	;
	10	;
	XGTVAL	;
	12	;Y=0?
	XJUMPC	;
	2	;
	L32	;If so, loop
	XCMDEST	;else get rid of checker
	20	;
	0
	XTERMINATE;and go away

L30:	XCMSKED	;Checker body
	XPRINT	;Say "."
	L46	;
	XGTVAL	;X≤0?
	10	;
	XJUMPC	;
	7	;if GT then jump
	L30	;
	XCMTRIG	;Yes.  trigger
	XJUMP	;
	L30	;

L31:	XCMBWT	;Wait for signal
	XPRINT
	L44	;Say "zero"
	XPUSH	;
	L41	;SET Y ← 10.0
	XCHNGE	;
	12	;
	XJUMP	;
	L31	;

;data area
L41:	41040	;10.0
	0
L41.5:	0	;0.0
	0
L42:	ASCIE </
	DECREMENTING/>
L43:	40200	;1.0
	0
L44:	ASCIE </
	ZERO/>
L45:	ASCIE </
	TEST OF CONDITION CHECKERS
/>
L46:	ASCIE </./>

  ⊗
;  SMALL TEST OF ARITHMETIC
COMMENT ⊗  Save the following for another time.

L1:	XMVAR
	10	;X
	12	;Y
	14	;Z
	16	;W
	0
	XPUSH	;X ← L103
	L103
	XCHNGE
	10
	XPUSH	;Y ← L105
	L105
	XCHNGE
	12
	XPUSH	;Z ← L107
	L107
	XCHNGE
	14

	XGTVAL	;W ← X . Y . Z
	10
	XGTVAL
	12
	XGTVAL
	14
L2:	XVMAKE
	XCHNGE
	16
	XPRINT	;
	A1	;
	XVARPRN	;
	16	;W
	XTERMINATE

L103:		;VECTOR(44.5, 44.5, 44.5, 2)
	41462
	0
	41462
	0
	41462
	0
	40400
	0

L105:		;VECTOR(10, 10, 10, 1)
	41040
	0
	41040
	0
	41040
	0
	40200
	0

L107:		;VECTOR(20, 20, 20, 1)
	41240
	0
	41240
	0
	41240
	0
	40200
	0
A1:	ASCIE /W = /
⊗  end of commented out portion
;  SMALL TEST OF ARITHMETIC
COMMENT ⊗  Save the following for another time.

L1:	XMVAR
	10	;X
	12	;Y
	14	;Z
	16	;W
	0
	XPUSH	;X ← L103
	L103
	XCHNGE
	10
	XPUSH	;Y ← L105
	L105
	XCHNGE
	12
	XPUSH	;Z ← L107
	L107
	XCHNGE
	14

	XGTVAL	;W ← X . Y . Z
	10
	XGTVAL
	12
	XGTVAL
	14
L2:	XVMAKE
	XCHNGE
	16
	XTERMINATE

L103:		;VECTOR(44.5, 44.5, 44.5, 2)
	41462
	0
	41462
	0
	41462
	0
	40400
	0

L105:		;VECTOR(10, 10, 10, 1)
	41040
	0
	41040
	0
	41040
	0
	40200
	0

L107:		;VECTOR(20, 20, 20, 1)
	41240
	0
	41240
	0
	41240
	0
	40200
	0
⊗  end of commented out portion
;  SMALL TEST OF ARITHMETIC
;COMMENT ⊗  Save the following for another time.

L1:	XMVAR
	10	;X
	12	;Y
	14	;Z
	16	;W
	0
	XPUSH	;X ← L103
	L103
	XCHNGE
	10
	XPUSH	;Y ← L105
	L105
	XCHNGE
	12
	XPUSH	;Z ← L107
	L107
	XCHNGE
	14

	XGTVAL	;W ← X . Y . Z
	10
	XGTVAL
	12
	XGTVAL
	14
L2:	XVMAKE
	XCHNGE
	16
	XTERMINATE

L103:		;VECTOR(44.5, 44.5, 44.5, 2)
	41462
	0
	41462
	0
	41462
	0
	40400
	0

L105:		;VECTOR(10, 10, 10, 1)
	41040
	0
	41040
	0
	41040
	0
	40200
	0

L107:		;VECTOR(20, 20, 20, 1)
	41240
	0
	41240
	0
	41240
	0
	40200
	0
;⊗  end of commented out portion
;  Test of graph structure:  calculators

COMMENT ⊗
	XMVAR
	20	;X
	22	;Y
	24	;Z
	26	;W
	0	;
	XPUSH	;X ← 1
	L1	;
	XCHNGE	;
	20	;
	XPUSH	;Y ← 1
	L1	;
	XCHNGE	;
	22	;
	XMCLC	;Z <= X + Y
	24	;
	L10	;code
	20	;neededs
	22	;
	0	;
	XMCLC	;W <= X + Y
	26	;
	L10	;code
	20	;neededs
	22	;
	0	;
	XMCLC	;W <= Z
	26	;
	L11	;code
	24	;neededs
	0	;
	XBREAK	;
	XGTVAL	;Print W
	26	;
	XPRNTS	;
	XKVAR	;
	20	;
	0	;
	XBREAK	;
	XKVAR	;
	22	;
	24	;
	26	;
	0	;
	XTERMINATE
L10:	XGTVAL	;X
	20	;
	XGTVAL	;Y
	22	;
	XSADD	;+
	XENDCLC	;
L11:	XGTVAL	;Z
	24	;
	XENDCLC	;
L1:	40200	;1
	0
⊗
;  Test of graph structure:  changers

COMMENT ⊗
	XMVAR
	20	;X
	22	;Y
	24	;Z
	26	;W
	0	;
	XPUSH	;X ← 1
	L1	;
	XCHNGE	;
	20	;
	XPUSH	;Y ← 1
	L1	;
	XCHNGE	;
	22	;
	XMCHG	;WHEN CHANGE X DO [Z ← NEW-OLD; PRINT Z]
	20	;
	L10	;code
	XMCHG	;WHEN CHANGE Z DO [PRINT Z]
	24	;
	L11	;code
	XPUSH	;X ← 10
	L2	;
	XCHNGE	;
	20	;
	XTERMINATE
L10:	XGTNEW	;
	XGTOLD	;
	XSSUB	;-
	XCOPY	;
	0
	XVALPRN	;
	XCHNGE	;
	24	;Z
	XTERMINATE
L11:	XGTVAL	;
	24	;Z
	XPRNTS	;
	XTERMINATE
L1:	40200	;1
	0
L2:	41040	;=10
	0
⊗